import axios from 'axios'
import { getToken, removeToken, removeUserId } from './localData';

// 设置服务器
axios.defaults.baseURL = 'http://127.0.0.1:3000'
// axios.defaults.baseURL = 'http://157.122.54.189:9083'
// 请求拦截器
axios.interceptors.request.use(
    config => {
        // 每次发送请求之前判断vuex中是否存在token
        // 如果存在，则统一在http请求的header都加上token，这样后台根据token判断你的登录情况
        // 即使本地存在token，也有可能token是过期的，所以在响应拦截器中要对返回状态进行判断
        const token = getToken()
        if (token) {
            config.headers.Authorization = token
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);



// // 添加响应拦截器
// axios.interceptors.response.use(
//     (response) => {
//         // console.log('服务器响应数据后，axios 会自动调用的函数', response)
//         if (response.data.message === '用户信息验证失败') {
//             // 失败的原因可能是未登录，或者登录过期了。
//             // 1. 删除已过期的用户信息
//             removeToken()
//             removeUserId()
//             // 2. 登录弹出框
//             Dialog.confirm({
//                 title: '用户认证失败',
//                 message: '需要登录后再操作',
//                 confirmButtonText: '去登录',
//                 cancelButtonText: '残忍拒绝',
//             }).then(() => {
//                 // on confirm
//                 const from = location.href
//                 console.log('去登录页前的页面', { from })
//                 router.push({
//                     // query 会显示在地址栏上，会转义成百分比编码，有问题
//                     // path 和 params 是冲突的
//                     // path: '/login',
//                     name: 'Login',
//                     params: {
//                         // 把跳转前的页面，存储到页面的 params 中
//                         // 注意点：params 不写占位符，就不会显示到地址栏中。，但是可以被 js 访问到
//                         from: from,
//                     }
//                 })
//             })
//                 .catch(() => {
//                     // on cancel
//                 })
//         }
//         // 返回的数据
//         return response
//     },
//     (error) => Promise.reject(error),
// )

export default axios